# test_alipay.py
from alipay import AliPay
import os

# 正确获取项目根目录（假设 test.py 位于 flask-web/ 下）
BASE_DIR = os.path.abspath(os.path.dirname(__file__))  # E:\webProject\flask-web\

private_key_path = os.path.join(BASE_DIR, 'keys', 'app_private_key.pem')
public_key_path = os.path.join(BASE_DIR, 'keys', 'alipay_public_key.pem')

print("项目根目录:", BASE_DIR)
print("私钥路径:", private_key_path)
print("公钥路径:", public_key_path)

# 检查文件是否存在
if not os.path.exists(private_key_path):
    raise FileNotFoundError(f"私钥文件未找到！路径: {private_key_path}")
if not os.path.exists(public_key_path):
    raise FileNotFoundError(f"公钥文件未找到！路径: {public_key_path}")

try:
    # 正确读取密钥文件内容
    with open(private_key_path, 'r') as f:
        private_key_content = f.read()

    with open(public_key_path, 'r') as f:
        public_key_content = f.read()

    # 初始化支付宝客户端
    alipay = AliPay(
        appid="9021000145617417",
        app_notify_url=None,
        app_private_key_string=private_key_content,  # 使用文件内容
        alipay_public_key_string=public_key_content,  # 使用文件内容
        sign_type="RSA2",
        debug=True
    )
    print("支付宝客户端初始化成功！")
except Exception as e:
    print("初始化失败:", str(e))
    print("建议检查：")
    print("1. 确保私钥是PKCS#8格式（以 BEGIN PRIVATE KEY 开头）")
    print("2. 检查公钥是否从支付宝开放平台正确下载")
    print("3. 确认密钥文件无多余空格或换行符")